iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 18
0
自我挑戰組

Framework 設計原則系列 第 18

Member Design (7) - Extension

  • 分享至 

  • xImage
  •  

Extension是一種Type延伸的靜態方法

舉例而言,我想在原本的string加上一個靜態方法叫IsPalindrome

必須要宣告一個傳入自己物件的參數

就能在Type後面直接.方法呼叫

範例如下

public static class StringExtensions{
    public static bool IsPalindrome(this string s){...}
}

string a = "hello world";
if(s.IsPalindrome()){...}

注意以下事項

1.不要輕易加上extension mehtods,尤其是沒有source code的情況下

2.避免System.Object物件的extension,如下

public static class SomeExtensions{
    static void SomeMethod(this object o){...}
}

3.extension mehtods與原生型態不要放在同一個namespace

4.不要用有名稱一樣的extension mehtods,即使是放在不同的namespace


上一篇
Member Design (6) - Parameter
下一篇
Member Design (8) - Operator Overloads
系列文
Framework 設計原則30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言